<?php
namespace Album;

use Album\Model\AlbumTable;
use Zend\Db\ResultSet\ResultSet;
use Album\Model\Album;
use Zend\Db\TableGateway\TableGateway;
class Module
{
	public function getAutoloaderConfig()
	{
		return array(
		  'Zend\Loader\ClassMapAutoloader' => array(
		      __DIR__ . '/autoload_classmap.php',
		  ),
		  'Zend\Loader\StandardAutoloader' => array(
		     'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
              ),
		  ),  
		);
	}
	
	public function getConfig()
	{
		return include __DIR__ . '/config/module.config.php';
	}
	
	public function getServiceConfig()
	{
		return array(
    	     'factories' => array(
    	         'Album\Model\AlbumTable' => function($sm) {
    	     	    $tableGateway = $sm->get('AlbumTableGateway');
    	     	    $table = new AlbumTable($tableGateway);
    	     	    return $table;
    	         },
    	         'AlbumTableGateway' => function($sm) {
    	         	$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
    	         	$resultSetProtype = new ResultSet();
    	         	$resultSetProtype->setArrayObjectPrototype(new Album());
    	         	return new TableGateway('album', $dbAdapter,null, $resultSetProtype);
    	         } ,
    	     ),  
		);
	}
}
?>